package cn.bgs.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * @ProjectName: bei
 * @Package: cn.bgs.utils
 * @ClassName: Date
 * @Author: Administrator
 * @Description:
 * @Date: 2021/9/9 0009 17:10
 * @Version: 1.0
 */
public class Date {
    /**
     * 获取两个日期相差的天数
     *
     * @param startDateStr
     * @param endDateStr
     */
    public static int getDayBetweenTwoDate(String startDateStr, String endDateStr) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        int days = 0;
        try {
            //parse方法：将字符串类型（java.lang.String）解析为日期类型（java.util.Date）
            java.util.Date startDate = simpleDateFormat.parse(startDateStr);
            java.util.Date endDate = simpleDateFormat.parse(endDateStr);
            Calendar startCalendar = Calendar.getInstance();
            startCalendar.setTime(startDate);
            System.out.println("startDate：：：：：：：：："+startDate);
            Calendar endCalendar = Calendar.getInstance();
            endCalendar.setTime(endDate);
            System.out.println("endDate:::::::::::::::"+endDate);
            //计算两个日期相差的天数
            //startCalendar.getTime().getTime()返回long毫秒数形式,毫秒转为秒所以除以1000
            //1天=24小时，1小时=60分，1分=60秒，所以两个时间的差再除以60 * 60 * 24换算成天的形式
            if((int) (startCalendar.getTime().getTime())>(int) (endCalendar.getTime().getTime())){
                days = ((int) (startCalendar.getTime().getTime() / 1000) - (int) (endCalendar.getTime().getTime() / 1000)) / (60 * 60 * 24);
            }else {
                days = ((int) (endCalendar.getTime().getTime() / 1000) - (int) (startCalendar.getTime().getTime() / 1000)) / (60 * 60 * 24);
            }


        } catch (ParseException e) {
            e.printStackTrace();
        }
        return days;
    }
}
